컴퓨터-계측기 연동

컴퓨터와 계측기를 연결하자!

이 두가지를 연결하려는 이유는 당연히 컴퓨터를 이용하여 계측기를 조절하기 위한 것이다. 그렇다면 단순히 계측기의 기능조절만이 컴퓨터의 역할 일까? 예를 들어 안테나의 패턴을 측정하는 경우를 생각해보자. 안테나를 회전시키기 위한 턴테이블과 턴테이블 콘트롤러, Network Analyzer(NA)가 필요한데, 이럴 때 턴테이블 콘트롤러로 안테나를 특정 각도별로 돌려가며 NA 측정값을 일일이 각도별로 적어야 할 것이다. 이렇게 해본 사람은 알겠지만 이 작업은 정말 단순 노가다가 그 자체이다.

원래 인간이 컴퓨터라는 개념을 처음 생각한 것은, 정확한 반복수행이라는 - 인간이 하기 싫어하고 힘들어하는 - 기능을 구현하기 위해서라고 한다. 바로 위와 같은 경우, 컴퓨터와 계측기를 연결하고 계측기를 조절하는 명령어를 반복수행 형태로 programing화 시킨다면 어떨까? 바로 이러한 과정을 일정각도로 턴테이블을 회전시킨 후에 NA 결과값을 읽어서 컴퓨터 내의 파일에 그 값을 기록하도록 하는 과정을 loop제어문을 통해 원하는 만큼 반복시킴으로써 완전 자동화시킬 수 있다. 이렇듯 컴퓨터와 계측기를 연동시키면 작업과정 자체를 자동화시킬 수 있으며, 그 결과를 PC로 바로 저장함으로써 측정데이타 수집이 매우 원활해진다.

HPIB ( Hewlett Packard Interface Bus)

계측기와 컴퓨터를 연결하는데는 흔히 HPIB라 불리우는 케이블 시스템을 이용한다. HPIB말고도 RS-232C (소위 컴퓨터에서 시리얼 케이블이라 불리우는) 케이블을 이용하여 연결할 수도 있으나, 속도나 안정성 및 최대연결단자 수 등에서 패러렐 케이블인 HPIB가 유리하기 때문에 거의 대부분 HPIB를 사용한다.

HPIB는 HP사가 처음 제창하여 1978년 IEEE에서 표준으로 제정한 계측기 끼리 혹은 계측기와 컴퓨터의 interface 규약이다. HPIB는 IEEE 표준 488로 분류되며, 1987년에 488.1(기존과 동일) 과 488.2(상태 레지스터 포함)로 세분화 개정되었다. HP이외의 계측기회사들은 HP와는 경쟁상대이기 때문이라서인지 HPIB라는 용어를 사용하지 않고 GPIB(General Purpose Interface Bus)라고 부른다. 좀 유치한 애들 싸움 같긴 하지만 어쨌거나 HPIB와 GPIB는 동일한 것이다.

HPIB의 단자는 위의 그림과 같이 생겼으며, 총 24개의 내부 연결선(핀)은 16개의 신호선과 2개의 GND, 6개의 twist line으로 구성된다. HPIB케이블 단자는 한쪽은 male, 반대면은 female로 되어있는 양면 자웅동체구조이며, 그러한 구조로 인해 케이블을 계측기에 연결한 후에도 바로 꽂은 자리 그 위에 줄줄이 다른 계측기로 연결하는 케이블을 꽂을 수 있게 되어있다.

HPIB의 연결과 주소지정

PC에 HPIB를 연결하려면 우선 오른쪽 그림과 같이 랜카드나 모뎀처럼 별도의 HPIB card를 메인보드 슬롯에 꽂은 후 Window에서 드라이버를 설치하여 인식시켜야 한다. 이러한 HPIB(GPIB) 카드는 HP사의 제품과 ICS사의 제품이 주종을 이루고 있다. 주의할 점은 이 HPIB 카드가 PNP로서 동작이 잘 안되는 편이라서 IRQ나 DMA를 매뉴얼보고 억지로 끼워 맞춰야 할 경우도 있다. (여러 PC에 설치해보면 종종 내부의 다른 카드와 충돌이 발생한다.) 또한 PC와 계측기, 계측기와 계측기간의 HPIB 선을 연결할 때는 무작정 연결하는게 아니라 아래와 같이 나름대로의 rule이 있다.

- 최대 15개까지의 계측기를 연결가능 (PC 포함)

- Star 방식이 아니라 Linear 방식으로 연결하길 권장함

- 연결선의 총 길이는 20m 이내, 각 계측기간의 연결선은 2m를 넘지 않아야 함.

- 1:1 연결의 경우에는 연결선의 길이를 4m 까지 허용

HPIB를 이용하기 위해서는 각 계측기마다 고유의 주소를 할당해야 한다. 보통 계측기의 고유주소는 7xx와 같은 3자리 숫자를 주로 사용하며, 일반적으로 7로 시작하게 되어있기 때문에 뒤의 두자리 숫자만 지정하게 된다. 이러한 주소할당은 계측기 화면에 나타나는 menu상에서 할당하기도 하지만 대부분은 계측기 뒷면에 위치한 dip switch를 이용하여 주소를 지정한다. 계측기 뒤에 있는 8개의 dip switch 단자 중 뒤의 5개만 주소할당에 사용하므로 실제로는 25 = 32개, 즉 0번에서 31번까지 주소를 지정할 수 있다.

각 계측기 종류별로 원래부터 사용해야만 하는 고유의 주소가 있는 것은 아니고, 하나의 line상에 연결된 계측기들이 서로 다른 주소로서 구분만 되면 된다. (이것은 네트웍의 IP 어드레스 지정과 매우 유사하다) 대신에 NA는 718, SA는 716 등으로 주로 사용되는 주소로 default setting되어 있으며, 기본적인 시스템 콘트롤러(PC) 같은 경우에는 721이나 730을 사용하는 것이 관례이다. 또한 731번은 카드계측기를 위해 항상 비워두어야 하므로 실제로는 사용할 수 없다. 여기서 한가지 주의할 점은, HP8510 계열 NA처럼 component type인 경우라면 그 자체가 시스템 콘트롤러 역할을 하기 때문에, PC와 함께 이용할 때 그 시스템 콘트롤러 기능을 PC에 물려주어야 한다. (내부적인 주소 변경 또는 기능 변경으로 물려준다.) 하나의 HPIB 선로상에는 시스템 콘트롤러가 하나만 존재해야 하기 때문이다. (당신 바로 위에 과장이 또는 부장이 똑같이 두명씩 있다고 생각해보길!!)

HPIB로 여러 계측기를 연결할 때 중요한 주의사항이 한가지 있는데, 사용하지 않고 전원을 꺼두는 장비가 있다면 케이블을 뽑아야 한다는 점이다. 아니면 굳이 사용하지 않더라도 켜놓아야 한다. 왜냐하면 각 계측기에 Linear 방식으로 줄줄이 물린 경우, 계측기가 꺼져 있으면 그 단의 내부저항때문에 신호가 termination되어 버리는 경우가 발생하여 그 이후로 연결된 계측기에 명령이 안 먹힐 수 있기 때문이다. 그래서 아예 연결할 때부터 중요도가 떨어져서 가끔씩만 사용하는 장비는 아예 빼놓던지 가장 말단에 연결해서 필요할 때만 연결하는 방법이 권장된다. 항상 에러가 발생하는 것은 아니지만, 선로상에 꺼져있는 기계가 많을수록 신호전력을 깎아먹어서 결국 오동작을 유발하게 된다. 의외로 많은 사람들이 이 부분을 무시하고 실험하다가 엉뚱한 오류로 인해 고생하는 경우를 당하는데, 꼭 명심해야할 부분이다.

HPIB 프로그래밍

이렇게 PC와 계측기를 연결하고 나면 이제 프로그래밍으로 조절하는 일만 남았는데, 우선 계측기 연결상의 기본적인 명령개념을 이해할 필요가 있다. 계측기간에 명령을 내리기 위해서는 Talker와 Listener의 두가지의 모드가 있다. 말 그대로 Talker는 특정 시점에 모든 Listner들에게 명령을 내리는 모드를 말하며, 한 선로상에서 동시에 두 개 이상의 Talker가 존재할 수 없다. 즉 Talker가 아니면 나머지 장비들은 모두 Listener모드로 대기중이어야 한다. 그래서 Talker 모드의 장비가 특정주소의 Listener에게 어떤 명령을 내리면 해당주소의 Listener만 그 명령을 받아들여서 기능을 수행하고, 상황에 따라서 Talker는 그 권한을 다른 장비에게 인도한다. 여기서 Talker모드는 시스템콘트롤러와는 완전히 별도의 리더 개념이다. 시스템 콘트롤러도 하나의 주소를 가진 장비로서 Talker 모드일 때도 있고 Listener 모드일 수 도 있다. 경우에 따라서 Plotter와 같이 특별히 다른 장비에 명령을 줄 필요가 없는 장비는 Listener 모드로만 동작하기도 한다.

이러한 계측기 조절 프로그램은 BASIC 프로그래밍 언어처럼 작성이 가능하며, 주로 사용되는 것은 HP BASIC이라는 HP에서  계측기 용으로 약간 특화시킨 BASIC language이다. 어쨌든 근본적으로는 BASIC 언어이기 때문에 사용법 자체는 쉽지만, 계측기마다 조절해야할 기능명령과 파라미터를 정확히 파악하는데 더 많은 시간이 소요된다. HPIB용 BASIC 역시 다른 언어와 마찬가지로 기본적인 룰은 매우 간단하기 때문에 reference book을 참고로 그때그때 필요한 명령어와 사용법을 찾아서 작성하면 된다. 하지만 최근에는 아래에서 소개할 Vee의 등장으로 인해 직접 프로그래밍할 필요가 거의 없어졌다.

HP Vee

위에서 HPIB 프로그래밍에 대해 언급했지만, 사실 최근에는 HP Vee라는 프로그램으로 인해 어떤면에서는 별도로 프로그래밍을 할 이유가 없어졌다. Vee는 이러한 계측기 조절 과정을 마치 시뮬레이션하듯이 윈도우 화면상에서 그래피컬하게 조절할 수 있으며, 각 계측기의 드라이버 파일만 있으면 완벽하게 계측기의 모든 기능을 PC에서 조절가능하다. 이 드라이버 파일 내에는 해당계측기의 기능을 조절하기 위한 명령어set이 다 들어있기 때문에 reference조차 필요 없다. 또한 Vee 내부에 논리연산 및 각종 수학계산과 파일입출력 기능블럭이 완벽하게 구축되어 있기 때문에, 계측기블럭만 불러서 설치하고 시스템 시뮬레이션 하듯이 연결한 후 입력조건과 출력결과 저장에 대한 문제등을 설정함으로써 실험을 완전히 자동화 시킬 수 있다.

아무래도 Vee가 HP에서 만든 프로그램이다 보니 HP 계측기들은 모두 Vee용 드라이버가 제공되지만, 기타 계측기 제조사의 제품을 사용할 때 드라이버를 구하기 어려운 경우가 간혹 발생한다. 이런 경우 억지로 HPIB 프로그래밍이 필요하겠지만 Vee용 드라이버 파일 구조가 간단하기 때문에 필요한 기능만 억지로 구현해서 드라이버를 구현할 수도 있다. 또는 Vee 내부의 특정 기능을 이용하여 드라이버가 없는 계측기 부분만 BASIC으로 처리할 수도 있다. 어쨋든 Vee를 이용하면 아주 간편하고 보기에도 멋지게 계측기를 서로 연동시켜가며 자동화된 실험이 가능하기 때문에, 많은 엔지니어의 손노가다를 줄여주고 있다. HP Vee는 이곳에 가면 온라인상에서 60일짜리 evaluation version을 바로 깔 수 있지만, 사이트 속도가 열나 느려서 상당한 인내력이 필요하다.